package Controle;

import java.io.IOException;
import java.sql.SQLException;
import java.util.List;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import DAOImplementacao.DisciplinaDAO;
import DAOImplementacao.QuestaoMultiplaDAO;
import Entidade.Disciplina;
import Entidade.QuestaoMultiplaEscolha;

/**
 * Servlet implementation class QuestaoMultiplaEscolhaServlet
 */
public class QuestaoMultiplaEscolhaServlet extends HttpServlet 
{
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public QuestaoMultiplaEscolhaServlet() 
    {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
	{
		doPost(request,response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
	{
		String comando = request.getParameter("comando");

		if (comando == null) 
		{
			response.sendRedirect("index.jsp");
		} 
		else if (comando.equals("inserir")) 
		{
			String idQuestao = request.getParameter("codigoQuestao");
			String enunciado = request.getParameter("enunciado");
			String opcaoResposta1 = request.getParameter("opcaoResposta1");
			String opcaoResposta2 = request.getParameter("opcaoResposta2");
			String opcaoResposta3 = request.getParameter("opcaoResposta3");
			String respostaCorreta = request.getParameter("respostaCorreta");
			String disciplina = request.getParameter("disciplinaRelacionada");
			String topico = request.getParameter("topicoRelacionado" );

			QuestaoMultiplaEscolha questaoMultiplaEscolha = new QuestaoMultiplaEscolha();

			questaoMultiplaEscolha.setId(idQuestao);
			questaoMultiplaEscolha.setEnunciado(enunciado);
			questaoMultiplaEscolha.setOpcaoEscolha1(opcaoResposta1);
			questaoMultiplaEscolha.setOpcaoEscolha2(opcaoResposta2);
			questaoMultiplaEscolha.setOpcaoEscolha3(opcaoResposta3);
			questaoMultiplaEscolha.setResposta(respostaCorreta);
			questaoMultiplaEscolha.setIdDisciplina(disciplina);
			questaoMultiplaEscolha.setIdTopicos(topico);
			
			try 
			{
				QuestaoMultiplaDAO dao = new QuestaoMultiplaDAO();
				dao.inserirQuestaoMultiplaEScolha(questaoMultiplaEscolha);
				String mensagem = "Questao Inserido com Sucesso!";
				request.setAttribute("mensagem", mensagem);

				RequestDispatcher rd = request.getRequestDispatcher("index.jsp");
				rd.forward(request, response);
			} 
			catch (ClassNotFoundException e) 
			{
				response.sendRedirect("paginas/DisciplinaErro.jsp?tituloPagina=Erro Disciplina&mensagem=Erro na Disciplina!" + e);
			} 
			catch (SQLException e) 
			{
				response.sendRedirect("paginas/DisciplinaErro.jsp?tituloPagina=Erro Disciplina&mensagem=Erro na Disciplina!" + e);				
			} 
			catch (Exception e) 
			{
				response.sendRedirect("paginas/DisciplinaErro.jsp?tituloPagina=Erro Disciplina&mensagem=Erro na Disciplina!" + e);				
			}
		}
		else if (comando.equals("alterar")) 
		{
			String ids = request.getParameter("codigoDisciplina");
			String nomes = request.getParameter("nomeDisciplina");

			Disciplina disciplina = new Disciplina();

			disciplina.setId(ids);
			disciplina.setNome(nomes);

			try 
			{
				DisciplinaDAO dao = new DisciplinaDAO();
				dao.alterarDisciplina(disciplina);
				String mensagem = "Disciplina Alterada com Sucesso!";
				request.setAttribute("mensagem", mensagem);

				RequestDispatcher rd = request.getRequestDispatcher("index.jsp");
				rd.forward(request, response);
			} 
			catch (ClassNotFoundException e) 
			{
				response.sendRedirect("paginas/DisciplinaErro.jsp?tituloPagina=Erro Disciplina&mensagem=Erro na Disciplina!" + e);
			} 
			catch (SQLException e) 
			{
				response.sendRedirect("paginas/DisciplinaErro.jsp?tituloPagina=Erro Disciplina&mensagem=Erro na Disciplina!" + e);
			} 
			catch (Exception e) 
			{
				response.sendRedirect("paginas/DisciplinaErro.jsp?tituloPagina=Erro Disciplina&mensagem=Erro na Disciplina!" + e);
			}

		}
		else if (comando.equals("remover")) 
		{
			String id = request.getParameter("codigoDisciplina");

			Disciplina disciplina = new Disciplina();
			disciplina.setId(id);

			try 
			{
				DisciplinaDAO dao = new DisciplinaDAO();
				dao.removerDisciplina(disciplina);
				String mensagem = "Disciplina removida com Sucesso!";
				request.setAttribute("mensagem", mensagem);

				RequestDispatcher rd = request.getRequestDispatcher("index.jsp");
				rd.forward(request, response);
			} 
			catch (ClassNotFoundException e) 
			{
				response.sendRedirect("paginas/Erro.jsp?tituloPagina=Erro Disciplina&mensagem=Erro na Disciplina!" + e);				
			} 
			catch (SQLException e) 
			{
				response.sendRedirect("paginas/Erro.jsp?tituloPagina=Erro Disciplina&mensagem=Erro na Disciplina!" + e);				
			} 
			catch (Exception e) 
			{
				response.sendRedirect("paginas/Erro.jsp?tituloPagina=Erro Disciplina&mensagem=Erro na Disciplina!" + e);				
			}
		}
	}
}
